/**
 * 全屏控件封装
 */

import { FullScreen as OlFullScreen } from 'ol/control';
import { BaseControl } from './BaseControl';

/**
 * 全屏控件配置
 */
export interface FullScreenOptions {
  /** 控件类名 */
  className?: string;
  /** 提示文本 */
  tipLabel?: string;
  /** 全屏时的提示文本 */
  label?: string;
  /** 退出全屏时的提示文本 */
  labelActive?: string;
  /** 全屏目标元素（默认使用地图容器） */
  target?: HTMLElement;
  /** 控件位置 */
  position?: 'top-left' | 'top-right' | 'bottom-left' | 'bottom-right';
}

/**
 * 全屏控件类
 */
export class FullScreen extends BaseControl {
  /**
   * 构造函数
   * @param options 配置选项
   */
  constructor(options: FullScreenOptions = {}) {
    const control = new OlFullScreen({
      className: options.className,
      tipLabel: options.tipLabel,
      label: options.label,
      labelActive: options.labelActive,
      target: options.target
    });
    super(control, options.position);
  }
}

